/**
 * jims
 */
package com.jims.master.modules.doctor.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 孕妇手册-复诊记录Entity
 * @author 王志明
 * @version 2017-07-21
 */
public class PregnantVisit extends DataEntity<PregnantVisit> {
	
	private static final long serialVersionUID = 1L;
	private String clinicId;		// 门诊号ID
	private String orgId;		// 机构ID
    private String orgName;		//机构名称
    private String deptName;		// 挂号部门名称
    private String doctorName;		// 医师名称
	private Date visitDatetime;		// visit_datetime
	private Integer visitNo;		// 门诊号
	private String patientId;		// 病人ID
	private String cardNo;		// 医疗卡号
	private String idNo;		// 身份证
	private Integer gestationalTitle;		// 复诊标题
	private String visitDept;		// 挂号部门ID
	private Date testingDatetime;		// 检查时间
	private Integer gestationalWeeks;		// 孕周
	private String gexamBloodPressure;		// 血压
	private Integer gexamWeight;		// 体重
	private Integer fundusHeight;		// 宫高
	private Integer abdominalCircum;		// 腹围
	private String fetalHeartRate;		// 胎心率
	private String fetalPosition;		// 胎方位
	private String fetalPresentation;		// 先露
	private String fetalJoin;		// 衔接
	private String fetalEdema;		// 浮肿
	private String fetalUltrasound;		// 超声检查
	private Integer hemoglobinValues;		// 血红蛋白
	private String urineProtein;		// 尿蛋白
	private String screenProduction;		// 产筛
	private String urine;		// 尿糖
	private String hrsPossess;		// 是否高危
	private Integer hrsScore;		// 高危评分
	private String hrsReason;		// 高危因素
	private String healthGuidance;		// 保健指导
	private String referral;		// 是否转诊
	private String referralReason;		// 转诊原因
	private String referralCompany;		// 转诊机构
	private Date nextExamDatetime;		// 下次随访时间
	private String inspectionUnit;		// 检查单位
	private String doctorUser;		// 检查医师
	private String tangShai;		// 唐筛
	private String inPelvimetryCd;		// 骨盆内测量-对角径
	private String inPelvimetryBd;		// 骨盆内测量-坐骨棘间径
	private String inPelvimetrySnwith;		// 骨盆内测量-坐骨切迹宽度
	private String labLiverFunction;		// 肝功能
	private String labRenalFunction;		// 肾功能
	private String fetalMovement;		// 胎动计数
	private String expertTestimony;		// 专家鉴定
	private String classMemo;		// 分类
	private String fetalHeartRateNst;		// 胎心监护NST
	private Date enterDatetime;		// enter_datetime
	private Integer outpNo;		// outp_no
	private Integer visitInt;		// 就诊次数
	private Integer informFlag;		// inform_flag
	private Date informDatetime;		// inform_datetime
	private String informLog;		// inform_log
	private Date expertTestimonyTime;		// 专家鉴定时间
	private String thirtySeventhDoctor;		// 37周专家鉴定
    private String clinicNo;		// 门诊号
    private String type;		// type1为复诊记录，2位专家鉴定

    public String getClinicNo() {
        return clinicNo;
    }

    public void setClinicNo(String clinicNo) {
        this.clinicNo = clinicNo;
    }

    public PregnantVisit() {
		super();
	}

	public PregnantVisit(String id){
		super(id);
	}

	@Length(min=0, max=64, message="门诊号ID长度必须介于 0 和 64 之间")
	public String getClinicId() {
		return clinicId;
	}

	public void setClinicId(String clinicId) {
		this.clinicId = clinicId;
	}
	
	@Length(min=0, max=64, message="机构ID长度必须介于 0 和 64 之间")
	public String getOrgId() {
		return orgId;
	}

	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getVisitDatetime() {
		return visitDatetime;
	}

	public void setVisitDatetime(Date visitDatetime) {
		this.visitDatetime = visitDatetime;
	}
	
	public Integer getVisitNo() {
		return visitNo;
	}

	public void setVisitNo(Integer visitNo) {
		this.visitNo = visitNo;
	}
	
	@Length(min=0, max=64, message="病人ID长度必须介于 0 和 64 之间")
	public String getPatientId() {
		return patientId;
	}

	public void setPatientId(String patientId) {
		this.patientId = patientId;
	}
	
	@Length(min=0, max=20, message="医疗卡号长度必须介于 0 和 20 之间")
	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}
	
	@Length(min=0, max=20, message="身份证长度必须介于 0 和 20 之间")
	public String getIdNo() {
		return idNo;
	}

	public void setIdNo(String idNo) {
		this.idNo = idNo;
	}
	
	@NotNull(message="复诊标题不能为空")
	public Integer getGestationalTitle() {
		return gestationalTitle;
	}

	public void setGestationalTitle(Integer gestationalTitle) {
		this.gestationalTitle = gestationalTitle;
	}
	
	@Length(min=0, max=64, message="挂号部门ID长度必须介于 0 和 64 之间")
	public String getVisitDept() {
		return visitDept;
	}

	public void setVisitDept(String visitDept) {
		this.visitDept = visitDept;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getTestingDatetime() {
		return testingDatetime;
	}

	public void setTestingDatetime(Date testingDatetime) {
		this.testingDatetime = testingDatetime;
	}
	
	public Integer getGestationalWeeks() {
		return gestationalWeeks;
	}

	public void setGestationalWeeks(Integer gestationalWeeks) {
		this.gestationalWeeks = gestationalWeeks;
	}
	
	@Length(min=0, max=10, message="血压长度必须介于 0 和 10 之间")
	public String getGexamBloodPressure() {
		return gexamBloodPressure;
	}

	public void setGexamBloodPressure(String gexamBloodPressure) {
		this.gexamBloodPressure = gexamBloodPressure;
	}
	
	public Integer getGexamWeight() {
		return gexamWeight;
	}

	public void setGexamWeight(Integer gexamWeight) {
		this.gexamWeight = gexamWeight;
	}
	
	public Integer getFundusHeight() {
		return fundusHeight;
	}

	public void setFundusHeight(Integer fundusHeight) {
		this.fundusHeight = fundusHeight;
	}
	
	public Integer getAbdominalCircum() {
		return abdominalCircum;
	}

	public void setAbdominalCircum(Integer abdominalCircum) {
		this.abdominalCircum = abdominalCircum;
	}
	
	@Length(min=0, max=20, message="胎心率长度必须介于 0 和 20 之间")
	public String getFetalHeartRate() {
		return fetalHeartRate;
	}

	public void setFetalHeartRate(String fetalHeartRate) {
		this.fetalHeartRate = fetalHeartRate;
	}
	
	@Length(min=0, max=20, message="胎方位长度必须介于 0 和 20 之间")
	public String getFetalPosition() {
		return fetalPosition;
	}

	public void setFetalPosition(String fetalPosition) {
		this.fetalPosition = fetalPosition;
	}
	
	@Length(min=0, max=20, message="先露长度必须介于 0 和 20 之间")
	public String getFetalPresentation() {
		return fetalPresentation;
	}

	public void setFetalPresentation(String fetalPresentation) {
		this.fetalPresentation = fetalPresentation;
	}
	
	@Length(min=0, max=20, message="衔接长度必须介于 0 和 20 之间")
	public String getFetalJoin() {
		return fetalJoin;
	}

	public void setFetalJoin(String fetalJoin) {
		this.fetalJoin = fetalJoin;
	}
	
	@Length(min=0, max=20, message="浮肿长度必须介于 0 和 20 之间")
	public String getFetalEdema() {
		return fetalEdema;
	}

	public void setFetalEdema(String fetalEdema) {
		this.fetalEdema = fetalEdema;
	}
	
	@Length(min=0, max=20, message="超声检查长度必须介于 0 和 20 之间")
	public String getFetalUltrasound() {
		return fetalUltrasound;
	}

	public void setFetalUltrasound(String fetalUltrasound) {
		this.fetalUltrasound = fetalUltrasound;
	}
	
	public Integer getHemoglobinValues() {
		return hemoglobinValues;
	}

	public void setHemoglobinValues(Integer hemoglobinValues) {
		this.hemoglobinValues = hemoglobinValues;
	}
	
	@Length(min=0, max=20, message="尿蛋白长度必须介于 0 和 20 之间")
	public String getUrineProtein() {
		return urineProtein;
	}

	public void setUrineProtein(String urineProtein) {
		this.urineProtein = urineProtein;
	}
	
	@Length(min=0, max=20, message="产筛长度必须介于 0 和 20 之间")
	public String getScreenProduction() {
		return screenProduction;
	}

	public void setScreenProduction(String screenProduction) {
		this.screenProduction = screenProduction;
	}
	
	@Length(min=0, max=20, message="尿糖长度必须介于 0 和 20 之间")
	public String getUrine() {
		return urine;
	}

	public void setUrine(String urine) {
		this.urine = urine;
	}
	
	@Length(min=0, max=1, message="是否高危长度必须介于 0 和 1 之间")
	public String getHrsPossess() {
		return hrsPossess;
	}

	public void setHrsPossess(String hrsPossess) {
		this.hrsPossess = hrsPossess;
	}
	
	public Integer getHrsScore() {
		return hrsScore;
	}

	public void setHrsScore(Integer hrsScore) {
		this.hrsScore = hrsScore;
	}
	
	@Length(min=0, max=60, message="高危因素长度必须介于 0 和 60 之间")
	public String getHrsReason() {
		return hrsReason;
	}

	public void setHrsReason(String hrsReason) {
		this.hrsReason = hrsReason;
	}
	
	@Length(min=0, max=100, message="保健指导长度必须介于 0 和 100 之间")
	public String getHealthGuidance() {
		return healthGuidance;
	}

	public void setHealthGuidance(String healthGuidance) {
		this.healthGuidance = healthGuidance;
	}
	
	@Length(min=0, max=1, message="是否转诊长度必须介于 0 和 1 之间")
	public String getReferral() {
		return referral;
	}

	public void setReferral(String referral) {
		this.referral = referral;
	}
	
	@Length(min=0, max=100, message="转诊原因长度必须介于 0 和 100 之间")
	public String getReferralReason() {
		return referralReason;
	}

	public void setReferralReason(String referralReason) {
		this.referralReason = referralReason;
	}
	
	@Length(min=0, max=100, message="转诊机构长度必须介于 0 和 100 之间")
	public String getReferralCompany() {
		return referralCompany;
	}

	public void setReferralCompany(String referralCompany) {
		this.referralCompany = referralCompany;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getNextExamDatetime() {
		return nextExamDatetime;
	}

	public void setNextExamDatetime(Date nextExamDatetime) {
		this.nextExamDatetime = nextExamDatetime;
	}
	
	@Length(min=0, max=60, message="检查单位长度必须介于 0 和 60 之间")
	public String getInspectionUnit() {
		return inspectionUnit;
	}

	public void setInspectionUnit(String inspectionUnit) {
		this.inspectionUnit = inspectionUnit;
	}
	
	@Length(min=0, max=16, message="检查医师长度必须介于 0 和 16 之间")
	public String getDoctorUser() {
		return doctorUser;
	}

	public void setDoctorUser(String doctorUser) {
		this.doctorUser = doctorUser;
	}
	
	@Length(min=0, max=20, message="唐筛长度必须介于 0 和 20 之间")
	public String getTangShai() {
		return tangShai;
	}

	public void setTangShai(String tangShai) {
		this.tangShai = tangShai;
	}
	
	@Length(min=0, max=20, message="骨盆内测量-对角径长度必须介于 0 和 20 之间")
	public String getInPelvimetryCd() {
		return inPelvimetryCd;
	}

	public void setInPelvimetryCd(String inPelvimetryCd) {
		this.inPelvimetryCd = inPelvimetryCd;
	}
	
	@Length(min=0, max=20, message="骨盆内测量-坐骨棘间径长度必须介于 0 和 20 之间")
	public String getInPelvimetryBd() {
		return inPelvimetryBd;
	}

	public void setInPelvimetryBd(String inPelvimetryBd) {
		this.inPelvimetryBd = inPelvimetryBd;
	}
	
	@Length(min=0, max=20, message="骨盆内测量-坐骨切迹宽度长度必须介于 0 和 20 之间")
	public String getInPelvimetrySnwith() {
		return inPelvimetrySnwith;
	}

	public void setInPelvimetrySnwith(String inPelvimetrySnwith) {
		this.inPelvimetrySnwith = inPelvimetrySnwith;
	}
	
	@Length(min=0, max=20, message="肝功能长度必须介于 0 和 20 之间")
	public String getLabLiverFunction() {
		return labLiverFunction;
	}

	public void setLabLiverFunction(String labLiverFunction) {
		this.labLiverFunction = labLiverFunction;
	}
	
	@Length(min=0, max=20, message="肾功能长度必须介于 0 和 20 之间")
	public String getLabRenalFunction() {
		return labRenalFunction;
	}

	public void setLabRenalFunction(String labRenalFunction) {
		this.labRenalFunction = labRenalFunction;
	}
	
	@Length(min=0, max=20, message="胎动计数长度必须介于 0 和 20 之间")
	public String getFetalMovement() {
		return fetalMovement;
	}

	public void setFetalMovement(String fetalMovement) {
		this.fetalMovement = fetalMovement;
	}
	
	@Length(min=0, max=200, message="专家鉴定长度必须介于 0 和 200 之间")
	public String getExpertTestimony() {
		return expertTestimony;
	}

	public void setExpertTestimony(String expertTestimony) {
		this.expertTestimony = expertTestimony;
	}
	
	@Length(min=0, max=60, message="分类长度必须介于 0 和 60 之间")
	public String getClassMemo() {
		return classMemo;
	}

	public void setClassMemo(String classMemo) {
		this.classMemo = classMemo;
	}
	
	@Length(min=0, max=20, message="胎心监护NST长度必须介于 0 和 20 之间")
	public String getFetalHeartRateNst() {
		return fetalHeartRateNst;
	}

	public void setFetalHeartRateNst(String fetalHeartRateNst) {
		this.fetalHeartRateNst = fetalHeartRateNst;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getEnterDatetime() {
		return enterDatetime;
	}

	public void setEnterDatetime(Date enterDatetime) {
		this.enterDatetime = enterDatetime;
	}
	
	public Integer getOutpNo() {
		return outpNo;
	}

	public void setOutpNo(Integer outpNo) {
		this.outpNo = outpNo;
	}
	
	public Integer getVisitInt() {
		return visitInt;
	}

	public void setVisitInt(Integer visitInt) {
		this.visitInt = visitInt;
	}
	
	public Integer getInformFlag() {
		return informFlag;
	}

	public void setInformFlag(Integer informFlag) {
		this.informFlag = informFlag;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getInformDatetime() {
		return informDatetime;
	}

	public void setInformDatetime(Date informDatetime) {
		this.informDatetime = informDatetime;
	}
	
	@Length(min=0, max=100, message="inform_log长度必须介于 0 和 100 之间")
	public String getInformLog() {
		return informLog;
	}

	public void setInformLog(String informLog) {
		this.informLog = informLog;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getExpertTestimonyTime() {
		return expertTestimonyTime;
	}

	public void setExpertTestimonyTime(Date expertTestimonyTime) {
		this.expertTestimonyTime = expertTestimonyTime;
	}
	
	@Length(min=0, max=10, message="37周专家鉴定长度必须介于 0 和 10 之间")
	public String getThirtySeventhDoctor() {
		return thirtySeventhDoctor;
	}

	public void setThirtySeventhDoctor(String thirtySeventhDoctor) {
		this.thirtySeventhDoctor = thirtySeventhDoctor;
	}

    public String getOrgName() {
        return orgName;
    }

    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDoctorName() {
        return doctorName;
    }

    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}